// The following ifdef block is the standard way of creating macros which make exporting 
// from a DLL simpler. All files within this DLL are compiled with the SHARPWINAPIWRAPPER_EXPORTS
// symbol defined on the command line. This symbol should not be defined on any project
// that uses this DLL. This way any other project whose source files include this file see 
// SHARPWINAPIWRAPPER_API functions as being imported from a DLL, whereas this DLL sees symbols
// defined with this macro as being exported.
#ifdef SHARPWINAPIWRAPPER_EXPORTS
#define SHARPWINAPIWRAPPER_API  __declspec(dllexport) __stdcall
#else
#define SHARPWINAPIWRAPPER_API __declspec(dllimport) 
#endif


extern "C" 	bool SHARPWINAPIWRAPPER_API  WriteFileWrapper(UINT handle, PUCHAR buf, UINT len, LPDWORD byteWritten);
extern "C" 	ULONG SHARPWINAPIWRAPPER_API ReadFileWrapper(UINT  Handle, PUCHAR buf, UINT bufLen);
extern "C" 	BOOL SHARPWINAPIWRAPPER_API StartServiceWrapper(LPCTSTR DriverName, LPDWORD LastError);
extern "C" 	BOOL SHARPWINAPIWRAPPER_API StopServiceWrapper(LPCTSTR DriverName, LPDWORD LastError);
extern "C" 	BOOL SHARPWINAPIWRAPPER_API PauseServiceWrapper(LPCTSTR DriverName, LPDWORD LastError);
extern "C" 	BOOL SHARPWINAPIWRAPPER_API ContinueServiceWrapper(LPCTSTR DriverName, LPDWORD LastError);
extern "C" 	BOOL SHARPWINAPIWRAPPER_API GetServiceStatusWrapper(LPCTSTR DriverName, LPDWORD LastError, LPSERVICE_STATUS ServiceStatus);
extern "C" 	BOOL SHARPWINAPIWRAPPER_API InstallServiceWrapper(LPCTSTR DriverName, LPDWORD LastError, LPCTSTR DriverPath);
extern "C" 	BOOL SHARPWINAPIWRAPPER_API RemoveServiceWrapper(LPCTSTR DriverName, LPDWORD LastError);
extern "C" 	BOOL SHARPWINAPIWRAPPER_API IsWow64(LPDWORD LastError);
